package generateRandomString

import (
	"fmt"
	"math/rand"
	"time"
)

// generateOrderSn sn的生成 (还有一种算法 雪花算法, 我们的订单号有一个问题, 不是递增的 如果需要递增 可以考虑雪花算法)
func GenerateSn(code string) string {
	// 订单号的生成规则
	/*
		年月日时分秒+2位随机数+code
	*/
	now := time.Now()
	source := rand.NewSource(time.Now().UnixNano())
	randomGenerator := rand.New(source) // 设置局部随机种子
	orderSn := fmt.Sprintf(
		"%04d%02d%02d%02d%02d%09d%02d-%d",
		now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Nanosecond(),
		randomGenerator.Intn(90)+10, code,
	)
	return orderSn
}
